package br.com.websec.titulo;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name="cabecalho")
public class CabecalhoTitulo implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 2510809747165741907L;
	
	@Id
	@GeneratedValue
	private Integer idCabecalhoTitulo;
	
	private String codigoBanco;
	
	private String loteServico;

	private int registroCabecalho;

	private int tipoInscricaoEmpresa;

	private String razaoSocialEmpresa;

	private String cpfCnpjEmpresa;

	private String codConvBanco;

	private String agencia;

	private String digitoAgencia;

	private String posto;

	private String conta;

	private String digitoConta;

	private String digitoAgenciaConta;

	private String nomeBanco;

	private int tipoOperacao;

	private Date dataGeracao;

	private int horaGeracaoArquivo;

	private Integer sequenciaArquivo;

	private String versaoLayout;

	private String densidadeArquivo;

	private String usoBanco;

	private String usoEmpresa;

	// Cobrança sem papel
	private String usoVans;

	private String tipoServico;

	private String ocorrencias;

	public String getCodigoBanco() {
		return codigoBanco;
	}

	public void setCodigoBanco(String codigoBanco) {
		this.codigoBanco = codigoBanco;
	}

	String getLoteServico() {
		return loteServico;
	}

	public void setLoteServico(String loteServico) {
		this.loteServico = loteServico;
	}

	int getRegistroCabecalho() {
		return registroCabecalho;
	}

	public void setRegistroCabecalho(int registroCabecalho) {
		this.registroCabecalho = registroCabecalho;
	}

	int getTipoInscricaoEmpresa() {
		return tipoInscricaoEmpresa;
	}

	public void setTipoInscricaoEmpresa(int tipoInscricaoEmpresa) {
		this.tipoInscricaoEmpresa = tipoInscricaoEmpresa;
	}

	String getRazaoSocialEmpresa() {
		return razaoSocialEmpresa;
	}

	public void setRazaoSocialEmpresa(String razaoSocialEmpresa) {
		this.razaoSocialEmpresa = razaoSocialEmpresa;
	}

	String getCpfCnpjEmpresa() {
		return cpfCnpjEmpresa;
	}

	public void setCpfCnpjEmpresa(String cpfCnpjEmpresa) {
		this.cpfCnpjEmpresa = cpfCnpjEmpresa;
	}

	String getCodConvBanco() {
		return codConvBanco;
	}

	public void setCodConvBanco(String codConvBanco) {
		this.codConvBanco = codConvBanco;
	}

	String getAgencia() {
		return agencia;
	}

	public void setAgencia(String agencia) {
		this.agencia = agencia;
	}

	String getDigitoAgencia() {
		return digitoAgencia;
	}

	public void setDigitoAgencia(String digitoAgencia) {
		this.digitoAgencia = digitoAgencia;
	}

	String getPosto() {
		return posto;
	}

	public void setPosto(String posto) {
		this.posto = posto;
	}

	String getConta() {
		return conta;
	}

	public void setConta(String conta) {
		this.conta = conta;
	}

	String getDigitoConta() {
		return digitoConta;
	}

	public void setDigitoConta(String digitoConta) {
		this.digitoConta = digitoConta;
	}

	String getDigitoAgenciaConta() {
		return digitoAgenciaConta;
	}

	public void setDigitoAgenciaConta(String digitoAgenciaConta) {
		this.digitoAgenciaConta = digitoAgenciaConta;
	}

	String getNomeBanco() {
		return nomeBanco;
	}

	public void setNomeBanco(String nomeBanco) {
		this.nomeBanco = nomeBanco;
	}

	int getTipoOperacao() {
		return tipoOperacao;
	}

	public void setTipoOperacao(int tipoOperacao) {
		this.tipoOperacao = tipoOperacao;
	}

	Date getDataGeracao() {
		return dataGeracao;
	}

	public void setDataGeracao(Date dataGeracao) {
		this.dataGeracao = dataGeracao;
	}

	int getHoraGeracaoArquivo() {
		return horaGeracaoArquivo;
	}

	public void setHoraGeracaoArquivo(int horaGeracaoArquivo) {
		this.horaGeracaoArquivo = horaGeracaoArquivo;
	}

	Integer getSequenciaArquivo() {
		return sequenciaArquivo;
	}

	public void setSequenciaArquivo(Integer sequenciaArquivo) {
		this.sequenciaArquivo = sequenciaArquivo;
	}

	String getVersaoLayout() {
		return versaoLayout;
	}

	public void setVersaoLayout(String versaoLayout) {
		this.versaoLayout = versaoLayout;
	}

	String getDensidadeArquivo() {
		return densidadeArquivo;
	}

	public void setDensidadeArquivo(String densidadeArquivo) {
		this.densidadeArquivo = densidadeArquivo;
	}

	String getUsoBanco() {
		return usoBanco;
	}

	public void setUsoBanco(String usoBanco) {
		this.usoBanco = usoBanco;
	}

	String getUsoEmpresa() {
		return usoEmpresa;
	}

	public void setUsoEmpresa(String usoEmpresa) {
		this.usoEmpresa = usoEmpresa;
	}

	String getUsoVans() {
		return usoVans;
	}

	public void setUsoVans(String usoVans) {
		this.usoVans = usoVans;
	}

	String getTipoServico() {
		return tipoServico;
	}

	public void setTipoServico(String tipoServico) {
		this.tipoServico = tipoServico;
	}

	String getOcorrencias() {
		return ocorrencias;
	}

	public void setOcorrencias(String ocorrencias) {
		this.ocorrencias = ocorrencias;
	}

	static long getSerialversionuid() {
		return serialVersionUID;
	}
	
	

	Integer getId() {
		return idCabecalhoTitulo;
	}

	public void setId(Integer idCabecalhoTitulo) {
		this.idCabecalhoTitulo = idCabecalhoTitulo;
	}
	
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((agencia == null) ? 0 : agencia.hashCode());
		result = prime * result
				+ ((codConvBanco == null) ? 0 : codConvBanco.hashCode());
		result = prime * result
				+ ((codigoBanco == null) ? 0 : codigoBanco.hashCode());
		result = prime * result + ((conta == null) ? 0 : conta.hashCode());
		result = prime * result
				+ ((cpfCnpjEmpresa == null) ? 0 : cpfCnpjEmpresa.hashCode());
		result = prime * result
				+ ((dataGeracao == null) ? 0 : dataGeracao.hashCode());
		result = prime
				* result
				+ ((densidadeArquivo == null) ? 0 : densidadeArquivo.hashCode());
		result = prime * result
				+ ((digitoAgencia == null) ? 0 : digitoAgencia.hashCode());
		result = prime
				* result
				+ ((digitoAgenciaConta == null) ? 0 : digitoAgenciaConta
						.hashCode());
		result = prime * result
				+ ((digitoConta == null) ? 0 : digitoConta.hashCode());
		result = prime * result + horaGeracaoArquivo;
		result = prime
				* result
				+ ((idCabecalhoTitulo == null) ? 0 : idCabecalhoTitulo
						.hashCode());
		result = prime * result
				+ ((loteServico == null) ? 0 : loteServico.hashCode());
		result = prime * result
				+ ((nomeBanco == null) ? 0 : nomeBanco.hashCode());
		result = prime * result
				+ ((ocorrencias == null) ? 0 : ocorrencias.hashCode());
		result = prime * result + ((posto == null) ? 0 : posto.hashCode());
		result = prime
				* result
				+ ((razaoSocialEmpresa == null) ? 0 : razaoSocialEmpresa
						.hashCode());
		result = prime * result + registroCabecalho;
		result = prime
				* result
				+ ((sequenciaArquivo == null) ? 0 : sequenciaArquivo.hashCode());
		result = prime * result + tipoInscricaoEmpresa;
		result = prime * result + tipoOperacao;
		result = prime * result
				+ ((tipoServico == null) ? 0 : tipoServico.hashCode());
		result = prime * result
				+ ((usoBanco == null) ? 0 : usoBanco.hashCode());
		result = prime * result
				+ ((usoEmpresa == null) ? 0 : usoEmpresa.hashCode());
		result = prime * result + ((usoVans == null) ? 0 : usoVans.hashCode());
		result = prime * result
				+ ((versaoLayout == null) ? 0 : versaoLayout.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		CabecalhoTitulo other = (CabecalhoTitulo) obj;
		if (agencia == null) {
			if (other.agencia != null)
				return false;
		} else if (!agencia.equals(other.agencia))
			return false;
		if (codConvBanco == null) {
			if (other.codConvBanco != null)
				return false;
		} else if (!codConvBanco.equals(other.codConvBanco))
			return false;
		if (codigoBanco == null) {
			if (other.codigoBanco != null)
				return false;
		} else if (!codigoBanco.equals(other.codigoBanco))
			return false;
		if (conta == null) {
			if (other.conta != null)
				return false;
		} else if (!conta.equals(other.conta))
			return false;
		if (cpfCnpjEmpresa == null) {
			if (other.cpfCnpjEmpresa != null)
				return false;
		} else if (!cpfCnpjEmpresa.equals(other.cpfCnpjEmpresa))
			return false;
		if (dataGeracao == null) {
			if (other.dataGeracao != null)
				return false;
		} else if (!dataGeracao.equals(other.dataGeracao))
			return false;
		if (densidadeArquivo == null) {
			if (other.densidadeArquivo != null)
				return false;
		} else if (!densidadeArquivo.equals(other.densidadeArquivo))
			return false;
		if (digitoAgencia == null) {
			if (other.digitoAgencia != null)
				return false;
		} else if (!digitoAgencia.equals(other.digitoAgencia))
			return false;
		if (digitoAgenciaConta == null) {
			if (other.digitoAgenciaConta != null)
				return false;
		} else if (!digitoAgenciaConta.equals(other.digitoAgenciaConta))
			return false;
		if (digitoConta == null) {
			if (other.digitoConta != null)
				return false;
		} else if (!digitoConta.equals(other.digitoConta))
			return false;
		if (horaGeracaoArquivo != other.horaGeracaoArquivo)
			return false;
		if (idCabecalhoTitulo == null) {
			if (other.idCabecalhoTitulo != null)
				return false;
		} else if (!idCabecalhoTitulo.equals(other.idCabecalhoTitulo))
			return false;
		if (loteServico == null) {
			if (other.loteServico != null)
				return false;
		} else if (!loteServico.equals(other.loteServico))
			return false;
		if (nomeBanco == null) {
			if (other.nomeBanco != null)
				return false;
		} else if (!nomeBanco.equals(other.nomeBanco))
			return false;
		if (ocorrencias == null) {
			if (other.ocorrencias != null)
				return false;
		} else if (!ocorrencias.equals(other.ocorrencias))
			return false;
		if (posto == null) {
			if (other.posto != null)
				return false;
		} else if (!posto.equals(other.posto))
			return false;
		if (razaoSocialEmpresa == null) {
			if (other.razaoSocialEmpresa != null)
				return false;
		} else if (!razaoSocialEmpresa.equals(other.razaoSocialEmpresa))
			return false;
		if (registroCabecalho != other.registroCabecalho)
			return false;
		if (sequenciaArquivo == null) {
			if (other.sequenciaArquivo != null)
				return false;
		} else if (!sequenciaArquivo.equals(other.sequenciaArquivo))
			return false;
		if (tipoInscricaoEmpresa != other.tipoInscricaoEmpresa)
			return false;
		if (tipoOperacao != other.tipoOperacao)
			return false;
		if (tipoServico == null) {
			if (other.tipoServico != null)
				return false;
		} else if (!tipoServico.equals(other.tipoServico))
			return false;
		if (usoBanco == null) {
			if (other.usoBanco != null)
				return false;
		} else if (!usoBanco.equals(other.usoBanco))
			return false;
		if (usoEmpresa == null) {
			if (other.usoEmpresa != null)
				return false;
		} else if (!usoEmpresa.equals(other.usoEmpresa))
			return false;
		if (usoVans == null) {
			if (other.usoVans != null)
				return false;
		} else if (!usoVans.equals(other.usoVans))
			return false;
		if (versaoLayout == null) {
			if (other.versaoLayout != null)
				return false;
		} else if (!versaoLayout.equals(other.versaoLayout))
			return false;
		return true;
	}
	
	
	
	
}